Automation today is characterized by pervasive instrumentation with multiple sensors resulting in voluminous data on the behavior of machinery ranging from simple switches to complex systems including hundreds of thousands of parts. The volume and diversity of data from the myriad sensors deployed has the potential to help understand better the environments in which these machines are operating. It becomes imperative for engineers and technicians working with such data to look for specific events such as “hard stops”, “lane-changes”, “engine overload” and so on. Each pattern usually can be expressed in terms of the simultaneous occurrence of a set of logical patterns across multiple sensors. For instance, a hard-stop is a sudden drop in speed together with increasing brake pressure within a short span of time. Specific occurrences of such patterns may differ in their actual duration, as well as the exact nature of each drop or rise in a specified sequence. Thus, traditional techniques that rely on near-exact waveform matches miss many instances.
Events of interest are often characterized by a set of patterns in multiple sensors, occurring simultaneously. Further, the duration of every occurrence of an event is not constant. For instance, vehicle drivers don't always apply sudden breaks for a fixed duration every time. Also, the duration of the event is observed to be different in every sensor, involved in the event. For instance, when applying sudden break in a vehicle, the pattern in a break sensor is of longer duration than that in a speed sensor. The problem becomes even more complex because patterns need not occur in the same time-window for each sensors. For instance, there may be a small time gap between start of a ‘sudden brake’ pattern in speed sensor versus the brake sensor. Missing values in sensor readings further complicate matters making searching for multi-sensor patterns a challenge.
Often events of interest are based on domain knowledge. However it then requires significant manual effort to annotate events in voluminous sensor data. In practice, such events are detected programmatically by searching for hard-coded conditions being observed in the sensor values. For instance, an event might be translated into a hard-coded rule seeking situations where “sensor−1 is higher than s1 at time t1 and derivative of sensor−2 is more than d2 for duration t2”. Because of the practical challenges, such hard-coded rules are often ineffective, as well as difficult to implement. Alternative techniques for the detection of time-series events use machine-learning techniques, but most of these methods work on time-series subsequences that have been extracted from the whole time-series already. However, these methods known in the art are plagued by challenges including but not limited to variable duration of events, mis-alignment in time of occurrences of patterns across sensors and variation in response to the same event. Also, methods known in the art find matches to a particular pattern rather than all instances that might correspond to an event of interest.
A lot of prior art has also focused on the supervised classification for identification of events in time-series. Some use a mix of supervised and un-supervised methods to discover temporal patterns from the dataset and can discriminate these temporal patterns from the rest. But all such methods require labelled instances of time-series segments in order to train their classifiers. Also, most of these approaches work on time-series segments of fixed length. However these methods also struggle in detecting practical events that are of variable length and span multiple sensors, since one would need to explore multiple lengths of windows spanning the entire time-series, making detection computationally intensive using such approaches.
There is a need therefore for methods and systems that address the above and other possible drawbacks and limitations of the currently used methods and systems relating to the field of searching logical patterns.